<?php


class WebServiceController extends Controller {

    private function cargarMaterias() {
        $materias = array();
        $materias[1]['pe_asignatura_id'] = 1;
        $materias[1]['codigo'] = 'CYT11';
        $materias[1]['org_carrera_id'] = 2;
        $materias[1]['nombre'] = 'Microprocesadores I';
        $materias[1]['cursada_anho'] = 4;
        $materias[1]['cursada_periodo_id'] = 2;

        $materias[2]['pe_asignatura_id'] = 2;
        $materias[2]['codigo'] = 'CYTA90';
        $materias[2]['org_carrera_id'] = 1;
        $materias[2]['nombre'] = 'Sistemas Paralelos y Distribuidos';
        $materias[2]['cursada_anho'] = 5;
        $materias[2]['cursada_periodo_id'] = 1;

        $materias[3]['pe_asignatura_id'] = 3;
        $materias[3]['codigo'] = 'CYT12';
        $materias[3]['org_carrera_id'] = 2;
        $materias[3]['nombre'] = 'Electromagnetismo';
        $materias[3]['cursada_anho'] = 5;
        $materias[3]['cursada_periodo_id'] = 1;

        $materias[4]['pe_asignatura_id'] = 4;
        $materias[4]['codigo'] = 'CYT43';
        $materias[4]['org_carrera_id'] = 1;
        $materias[4]['nombre'] = 'Fisica 1';
        $materias[4]['cursada_anho'] = 2;
        $materias[4]['cursada_periodo_id'] = 1;

        $materias[5]['pe_asignatura_id'] = 5;
        $materias[5]['codigo'] = 'CYT13';
        $materias[5]['org_carrera_id'] = 2;
        $materias[5]['nombre'] = 'Telecomunicaciones';
        $materias[5]['cursada_anho'] = 5;
        $materias[5]['cursada_periodo_id'] = 1;

        $materias[6]['pe_asignatura_id'] = 6;
        $materias[6]['codigo'] = 'CYT88';
        $materias[6]['org_carrera_id'] = 1;
        $materias[6]['nombre'] = 'Redes de Computadoras 1';
        $materias[6]['cursada_anho'] = 4;
        $materias[6]['cursada_periodo_id'] = 1;

        $materias[7]['pe_asignatura_id'] = 7;
        $materias[7]['codigo'] = 'CO192';
        $materias[7]['org_carrera_id'] = 4;
        $materias[7]['nombre'] = 'Contabilidad 1';
        $materias[7]['cursada_anho'] = 1;
        $materias[7]['cursada_periodo_id'] = 2;

        $materias[8]['pe_asignatura_id'] = 8;
        $materias[8]['codigo'] = 'CO100';
        $materias[8]['org_carrera_id'] = 4;
        $materias[8]['nombre'] = 'Organizacion de Empresas';
        $materias[8]['cursada_anho'] = 2;
        $materias[8]['cursada_periodo_id'] = 2;

        $materias[9]['pe_asignatura_id'] = 9;
        $materias[9]['codigo'] = 'CO91';
        $materias[9]['org_carrera_id'] = 4;
        $materias[9]['nombre'] = 'Matematica';
        $materias[9]['cursada_anho'] = 1;
        $materias[9]['cursada_periodo_id'] = 1;

        $materias[10]['pe_asignatura_id'] = 10;
        $materias[10]['codigo'] = 'CC23';
        $materias[10]['org_carrera_id'] = 7;
        $materias[10]['nombre'] = 'Contabilidad I';
        $materias[10]['cursada_anho'] = 2;
        $materias[10]['cursada_periodo_id'] = 2;

        $materias[11]['pe_asignatura_id'] = 11;
        $materias[11]['codigo'] = 'D291';
        $materias[11]['org_carrera_id'] = 5;
        $materias[11]['nombre'] = 'Derecho Laboral';
        $materias[11]['cursada_anho'] = 1;
        $materias[11]['cursada_periodo_id'] = 1;

        $materias[12]['pe_asignatura_id'] = 12;
        $materias[12]['codigo'] = 'CC24';
        $materias[12]['org_carrera_id'] = 7;
        $materias[12]['nombre'] = 'Finanzas I';
        $materias[12]['cursada_anho'] = 3;
        $materias[12]['cursada_periodo_id'] = 1;

        $materias[13]['pe_asignatura_id'] = 13;
        $materias[13]['codigo'] = 'D102';
        $materias[13]['org_carrera_id'] = 5;
        $materias[13]['nombre'] = 'Ciencias Juridicas 1';
        $materias[13]['cursada_anho'] = 3;
        $materias[13]['cursada_periodo_id'] = 1;

        $materias[14]['pe_asignatura_id'] = 14;
        $materias[14]['codigo'] = 'CC25';
        $materias[14]['org_carrera_id'] = 7;
        $materias[14]['nombre'] = 'Codigo Laboral';
        $materias[14]['cursada_anho'] = 3;
        $materias[14]['cursada_periodo_id'] = 2;

        $materias[15]['pe_asignatura_id'] = 15;
        $materias[15]['codigo'] = 'CYT101';
        $materias[15]['org_carrera_id'] = 6;
        $materias[15]['nombre'] = 'Historia de la Arquitectura';
        $materias[15]['cursada_anho'] = 1;
        $materias[15]['cursada_periodo_id'] = 2;

        $materias[16]['pe_asignatura_id'] = 16;
        $materias[16]['codigo'] = 'CYT102';
        $materias[16]['org_carrera_id'] = 6;
        $materias[16]['nombre'] = 'Maquetas I';
        $materias[16]['cursada_anho'] = 2;
        $materias[16]['cursada_periodo_id'] = 1;

        $materias[17]['pe_asignatura_id'] = 17;
        $materias[17]['codigo'] = 'CYT103';
        $materias[17]['org_carrera_id'] = 6;
        $materias[17]['nombre'] = 'Dibujo I';
        $materias[17]['cursada_anho'] = 3;
        $materias[17]['cursada_periodo_id'] = 1;

        $materias[18]['pe_asignatura_id'] = 18;
        $materias[18]['codigo'] = 'CYT134';
        $materias[18]['org_carrera_id'] = 6;
        $materias[18]['nombre'] = 'Dibujo II';
        $materias[18]['cursada_anho'] = 3;
        $materias[18]['cursada_periodo_id'] = 2;

        return $materias;
    }

    private function cargarFacultades() {
    //PARA NUESTRO CASO NO USAMOS org_ubicacion_id
        $facultades = array();
        $facultades[1]['org_unid_acad_id'] = 1;
        $facultades[1]['nombre'] = 'CyT';
        //$facultades[1]['org_ubicacion_id'] = 1;

        $facultades[2]['org_unid_acad_id'] = 2;
        $facultades[2]['nombre'] = 'Derecho';
        //$facultades[2]['org_ubicacion_id'] = 1;

        $facultades[3]['org_unid_acad_id'] = 3;
        $facultades[3]['nombre'] = 'Contables';
        //$facultades[3]['org_ubicacion_id'] = 1;

        return $facultades;
    }

    private function cargarSedes() {
        $sedes = array();
        $sedes[1]['org_ubicacion_id'] = 1;
        $sedes[1]['nombre'] = 'Campus Santa Librada';

        $sedes[2]['org_ubicacion_id'] = 2;
        $sedes[2]['nombre'] = 'Centro';

        return $sedes;
    }

    private function cargarCarreras() {
        $carreras = array();
        $carreras[1]['org_carrera_id'] = 1;
        $carreras[1]['org_unid_acad_id'] = 1;
        $carreras[1]['nombre'] = 'Ingenieria Informatica';

        $carreras[2]['org_carrera_id'] = 2;
        $carreras[2]['org_unid_acad_id'] = 1;
        $carreras[2]['nombre'] = 'Ingenieria Electronica';

        $carreras[4]['org_carrera_id'] = 4;
        $carreras[4]['org_unid_acad_id'] = 3;
        $carreras[4]['nombre'] = 'Contabilidad';

        $carreras[5]['org_carrera_id'] = 5;
        $carreras[5]['org_unid_acad_id'] = 2;
        $carreras[5]['nombre'] = 'Derecho';

        $carreras[6]['org_carrera_id'] = 6;
        $carreras[6]['org_unid_acad_id'] = 1;
        $carreras[6]['nombre'] = 'Arquitectura';

        $carreras[7]['org_carrera_id'] = 7;
        $carreras[7]['org_unid_acad_id'] = 3;
        $carreras[7]['nombre'] = 'Administracion de Empresas';

        return $carreras;
    }
	
	private function cargarPeriodos(){
		$periodos = array();
		$periodos[1]['cal_periodo_lectivo_id'] = '1';
		$periodos[1]['fecha_desde'] = '2012-08-20';
		$periodos[1]['fecha_hasta'] = '2012-12-01';
		$periodos[1]['nombre'] = 'Segundo Semestre';
		$periodos[1]['anho_academico'] = 2012;
		
		$periodos[2]['cal_periodo_lectivo_id'] = '2';
		$periodos[2]['fecha_desde'] = '2013-03-04';
		$periodos[2]['fecha_hasta'] = '2013-06-22';
		$periodos[2]['nombre'] = 'Primer Semestre';
		$periodos[2]['anho_academico'] = 2013;
		
		return $periodos;
	}

    private function cargarCursos() {
        $cursos = array();
        $cursos[1]['prg_curso_id'] = 1;
        $cursos[1]['pe_asignatura_id'] = 4;
        $cursos[1]['semestre'] = 1;
        $cursos[1]['seccion'] = 'A';
        $cursos[1]['cnt_horas_sem'] = 6;
		$cursos[1]['cal_periodo_lectivo_id'] = 2;

        $cursos[2]['prg_curso_id'] = 2;
        $cursos[2]['pe_asignatura_id'] = 8;
        $cursos[2]['semestre'] = 1;
        $cursos[2]['seccion'] = 'A';
        $cursos[2]['cnt_horas_sem'] = 5;
		$cursos[2]['cal_periodo_lectivo_id'] = 2;

        $cursos[3]['prg_curso_id'] = 3;
        $cursos[3]['pe_asignatura_id'] = 7;
        $cursos[3]['semestre'] = 2;
        $cursos[3]['seccion'] = 'C';
        $cursos[3]['cnt_horas_sem'] = 8;
		$cursos[3]['cal_periodo_lectivo_id'] = 2;

        $cursos[4]['prg_curso_id'] = 4;
        $cursos[4]['pe_asignatura_id'] = 6;
        $cursos[4]['semestre'] = 2;
        $cursos[4]['seccion'] = 'A';
        $cursos[4]['cnt_horas_sem'] = 6;
		$cursos[4]['cal_periodo_lectivo_id'] = 2;

        $cursos[5]['prg_curso_id'] = 5;
        $cursos[5]['pe_asignatura_id'] = 9;
        $cursos[5]['semestre'] = 1;
        $cursos[5]['seccion'] = 'B';
        $cursos[5]['cnt_horas_sem'] = 8;
		$cursos[5]['cal_periodo_lectivo_id'] = 2;

        $cursos[6]['prg_curso_id'] = 6;
        $cursos[6]['pe_asignatura_id'] = 10;
        $cursos[6]['semestre'] = 2;
        $cursos[6]['seccion'] = 'B';
        $cursos[6]['cnt_horas_sem'] = 4;
		$cursos[6]['cal_periodo_lectivo_id'] = 2;

        $cursos[7]['prg_curso_id'] = 7;
        $cursos[7]['pe_asignatura_id'] = 8;
        $cursos[7]['semestre'] = 1;
        $cursos[7]['seccion'] = 'A';
        $cursos[7]['cnt_horas_sem'] = 6;
		$cursos[7]['cal_periodo_lectivo_id'] = 2;

        $cursos[8]['prg_curso_id'] = 8;
        $cursos[8]['pe_asignatura_id'] = 12;
        $cursos[8]['semestre'] = 1;
        $cursos[8]['seccion'] = 'A';
        $cursos[8]['cnt_horas_sem'] = 8;
		$cursos[8]['cal_periodo_lectivo_id'] = 2;

        $cursos[9]['prg_curso_id'] = 9;
        $cursos[9]['pe_asignatura_id'] = 14;
        $cursos[9]['semestre'] = 1;
        $cursos[9]['seccion'] = 'C';
        $cursos[9]['cnt_horas_sem'] = 4;
		$cursos[9]['cal_periodo_lectivo_id'] = 2;

        $cursos[10]['prg_curso_id'] = 10;
        $cursos[10]['pe_asignatura_id'] = 15;
        $cursos[10]['semestre'] = 2;
        $cursos[10]['seccion'] = 'A';
        $cursos[10]['cnt_horas_sem'] = 4;
		$cursos[10]['cal_periodo_lectivo_id'] = 2;

        $cursos[11]['prg_curso_id'] = 11;
        $cursos[11]['pe_asignatura_id'] = 13;
        $cursos[11]['semestre'] = 1;
        $cursos[11]['seccion'] = 'A';
        $cursos[11]['cnt_horas_sem'] = 8;
		$cursos[11]['cal_periodo_lectivo_id'] = 2;

        $cursos[12]['prg_curso_id'] = 12;
        $cursos[12]['pe_asignatura_id'] = 17;
        $cursos[12]['semestre'] = 1;
        $cursos[12]['seccion'] = 'A';
        $cursos[12]['cnt_horas_sem'] = 6;
		$cursos[12]['cal_periodo_lectivo_id'] = 2;

        $cursos[13]['prg_curso_id'] = 13;
        $cursos[13]['pe_asignatura_id'] = 11;
        $cursos[13]['semestre'] = 2;
        $cursos[13]['seccion'] = 'B';
        $cursos[13]['cnt_horas_sem'] = 6;
		$cursos[13]['cal_periodo_lectivo_id'] = 2;

        $cursos[14]['prg_curso_id'] = 14;
        $cursos[14]['pe_asignatura_id'] = 1;
        $cursos[14]['semestre'] = 2;
        $cursos[14]['seccion'] = 'A';
        $cursos[14]['cnt_horas_sem'] = 7;
		$cursos[14]['cal_periodo_lectivo_id'] = 2;

        $cursos[15]['prg_curso_id'] = 15;
        $cursos[15]['pe_asignatura_id'] = 3;
        $cursos[15]['semestre'] = 1;
        $cursos[15]['seccion'] = 'A';
        $cursos[15]['cnt_horas_sem'] = 6;
		$cursos[15]['cal_periodo_lectivo_id'] = 2;

        $cursos[16]['prg_curso_id'] = 16;
        $cursos[16]['pe_asignatura_id'] = 5;
        $cursos[16]['semestre'] = 2;
        $cursos[16]['seccion'] = 'A';
        $cursos[16]['cnt_horas_sem'] = 4;
		$cursos[16]['cal_periodo_lectivo_id'] = 2;

        return $cursos;
    }

    private function cargarAlumnos() {
        $alumnos = array();

        $alumnos[1]['al_alumno_id'] = 1;
        $alumnos[1]['doc_nro'] = '100';

        $alumnos[2]['al_alumno_id'] = 2;
        $alumnos[2]['doc_nro'] = '101';

        $alumnos[3]['al_alumno_id'] = 3;
        $alumnos[3]['doc_nro'] = '102';

        $alumnos[4]['al_alumno_id'] = 4;
        $alumnos[4]['doc_nro'] = '103';

        $alumnos[5]['al_alumno_id'] = 5;
        $alumnos[5]['doc_nro'] = '104';

        $alumnos[6]['al_alumno_id'] = 6;
        $alumnos[6]['doc_nro'] = '105';

        $alumnos[7]['al_alumno_id'] = 7;
        $alumnos[7]['doc_nro'] = '106';

        $alumnos[8]['al_alumno_id'] = 8;
        $alumnos[8]['doc_nro'] = '107';

        $alumnos[9]['al_alumno_id'] = 9;
        $alumnos[9]['doc_nro'] = '108';

        $alumnos[10]['al_alumno_id'] = 10;
        $alumnos[10]['doc_nro'] = '109';

        $alumnos[11]['al_alumno_id'] = 11;
        $alumnos[11]['doc_nro'] = '110';

        return $alumnos;
    }

    private function cargarProfesores() {
        $profesores = array();
        $profesor[1]['prof_profesor_id'] = 1;
        $profesor[1]['doc_nro'] = '1000';
        $profesor[2]['prof_profesor_id'] = 2;
        $profesor[2]['doc_nro'] = '1001';
        $profesor[3]['prof_profesor_id'] = 3;
        $profesor[3]['doc_nro'] = '1002';
        $profesor[4]['prof_profesor_id'] = 4;
        $profesor[4]['doc_nro'] = '1003';

        return $profesores;
    }

    private function cargarHorarios() {
		// formato [curso][dia]
		// dia 1:lunes, 7:domingo
        $horarios = array();
		$horarios[1][1]['hc'] = 2;
		$horarios[1][1]['inicio'] = '13:00';
		$horarios[1][4]['hc'] = 2;
		$horarios[1][4]['inicio'] = '15:20';
		$horarios[1][6]['hc'] = 2;
		$horarios[1][6]['inicio'] = '13:00';
		$horarios[2][4]['hc'] = 3;
		$horarios[2][4]['inicio'] = '13:00';
		$horarios[3][3]['hc'] = 2;
		$horarios[3][3]['inicio'] = '14:30';
		$horarios[3][4]['hc'] = 2;
		$horarios[3][4]['inicio'] = '14:30';
		$horarios[4][1]['hc'] = 2;
		$horarios[4][1]['inicio'] = '17:00';
		$horarios[4][3]['hc'] = 3;
		$horarios[4][3]['inicio'] = '13:00';
		$horarios[4][5]['hc'] = 2;
		$horarios[4][5]['inicio'] = '07:30';
		$horarios[5][5]['hc'] = 2;
		$horarios[5][5]['inicio'] = '09:00';
		$horarios[6][1]['hc'] = 2;
		$horarios[6][1]['inicio'] = '13:00';
		$horarios[7][2]['hc'] = 2;
		$horarios[7][2]['inicio'] = '13:40';
		$horarios[8][1]['hc'] = 2;
		$horarios[8][1]['inicio'] = '13:00';
		$horarios[8][4]['hc'] = 2;
		$horarios[8][4]['inicio'] = '14:30';
		$horarios[9][2]['hc'] = 2;
		$horarios[9][2]['inicio'] = '16:00';
		$horarios[9][5]['hc'] = 3;
		$horarios[9][5]['inicio'] = '15:20';
		$horarios[10][3]['hc'] = 2;
		$horarios[10][3]['inicio'] = '13:00';
		$horarios[10][5]['hc'] = 2;
		$horarios[10][5]['inicio'] = '14:30';
		$horarios[11][2]['hc'] = 2;
		$horarios[11][2]['inicio'] = '18:30';
		$horarios[12][2]['hc'] = 2;
		$horarios[12][2]['inicio'] = '19:10';
		$horarios[12][4]['hc'] = 3;
		$horarios[12][4]['inicio'] = '13:00';
		$horarios[13][5]['hc'] = 2;
		$horarios[13][5]['inicio'] = '14:30';
		$horarios[14][3]['hc'] = 3;
		$horarios[14][3]['inicio'] = '15:20';
		$horarios[14][5]['hc'] = 2;
		$horarios[14][5]['inicio'] = '13:00';
		$horarios[15][1]['hc'] = 3;
		$horarios[15][1]['inicio'] = '08:50';
		$horarios[16][2]['hc'] = 2;
		$horarios[16][1]['inicio'] = '13:00';

        return $horarios;
    }

    private function cargarAlumnosXCurso() {
        $alumnos = array();
        $alumnos[1] = array(1, 11, 7);
        $alumnos[2] = array(4, 3, 11);
        $alumnos[3] = array(10, 2, 5);
        $alumnos[4] = array(6, 8, 9);
        $alumnos[5] = array(4, 9, 1);
        $alumnos[6] = array(11, 3, 8);
        $alumnos[7] = array(10, 4, 2);
        $alumnos[8] = array(6, 5, 9);
        $alumnos[9] = array(6, 3, 11);
        $alumnos[10] = array(2, 4, 6);
        $alumnos[11] = array(7, 8, 6);
        $alumnos[12] = array(2, 1, 11);
        $alumnos[13] = array(10, 2, 1);
        $alumnos[14] = array(8, 7, 9);
        $alumnos[15] = array(11, 7, 5);
        $alumnos[16] = array(3, 10, 9);

        return $alumnos;
    }

    private function cargarCursosXAlumno() {
        $cursos = array();
        $cursos [1] = array(1, 5, 12, 13);
        $cursos [2] = array(3, 7, 10, 12, 13);
        $cursos [3] = array(2, 6, 9, 16);
        $cursos [4] = array(2, 5, 7, 10);
        $cursos [5] = array(3, 8, 15);
        $cursos [6] = array(4, 8, 9, 10, 11);
        $cursos [7] = array(1, 11, 14, 15);
        $cursos [8] = array(4, 6, 11, 14);
        $cursos [9] = array(4, 5, 8, 14, 16);
        $cursos [10] = array(3, 7, 13, 16);
        $cursos [11] = array(1, 2, 6, 9, 12, 15);

        return $cursos;
    }
    
    private function cargarFacultadXProfesor(){
        $facultades = array();
        $facultades[1] = array(1,3);
        $facultades[2] = array(2,1);
        $facultades[3] = array(1,2,3);
        $facultades[4] = array(2);

        return $facultades;
        
    }
    
    private function cargarFacultadXAlumno(){
        $facultades = array();
        $facultades[1] = array(1,2);
        $facultades[2] = array(2);
        $facultades[3] = array(1,2);
        $facultades[4] = array(1);
        $facultades[5] = array(1);
        $facultades[6] = array(2,1);
        $facultades[7] = array(2,3);
        $facultades[8] = array(2);
        $facultades[9] = array(3);
        $facultades[10] = array(1);
        $facultades[11] = array(3);
                return $facultades;


    }

    private function cargarProfesoresXCurso() {
        $cursos = array();
		//curso - profesor
        $cursos[1] = array(1);
        $cursos[5] = array(1);
        $cursos[7] = array(1);
        $cursos[12] = array(1);
        $cursos[13] = array(1);
        $cursos[10] = array(1);
        $cursos[2] = array(2);
        $cursos[3] = array(2);
        $cursos[6] = array(2);
        $cursos[14] = array(2);
        $cursos[16] = array(2);
        $cursos[11] = array(3);
        $cursos[15] = array(3);
        $cursos[4] = array(3);
        $cursos[8] = array(3);
        $cursos[9] = array(3);
        return $cursos;
    }

    private function cargarCursosXProfesor() {
        $profesores = array();
		//profesor - cursos
        $profesores[1] = array(1, 5, 7, 12, 10, 13);
        $profesores[2] = array(2, 3, 6, 14, 16);
        $profesores[3] = array(4, 8, 9, 11, 15);
        return $profesores;
    }
    
    private function cargarAlumnoXReduccion(){
        $reduccion = array();
        $reduccion[1][1] = 0;
        $reduccion[1][5] = 30;
        $reduccion[1][12] = 60;
        $reduccion[1][13] = 100;

        $reduccion[2][3] = 100;
        $reduccion[2][7] = 0;
        $reduccion[2][10] = 0;
        $reduccion[2][12] = 0;
        $reduccion[2][13] = 60;
       
        $reduccion[3][2] = 40;
        $reduccion[3][6] = 100;
        $reduccion[3][9] = 0;
        $reduccion[3][16] = 0;

        $reduccion[4][2] = 0;
        $reduccion[4][5] = 0;
        $reduccion[4][7] = 60;
        $reduccion[4][10] = 40;
        
        $reduccion[5][3] = 100;
        $reduccion[5][8] = 0;
        $reduccion[5][15] = 0;
        
        $reduccion[6][4] = 40;
        $reduccion[6][8] = 40;
        $reduccion[6][9] = 40;
        $reduccion[6][10] = 0;
        $reduccion[6][11] = 0;
        
        $reduccion[7][1] = 0;
        $reduccion[7][11] = 0;
        $reduccion[7][14] = 100;
        $reduccion[7][15] = 100;
        
        $reduccion[8][4] = 0;
        $reduccion[8][6] = 0;
        $reduccion[8][11] = 0;
        $reduccion[8][14] = 0;
        
        $reduccion[9][4] = 60;
        $reduccion[9][5] = 40;
        $reduccion[9][8] = 100;
        $reduccion[9][14] = 0;
        $reduccion[9][16] = 0;

        $reduccion[10][3] = 0;
        $reduccion[10][7] = 0;
        $reduccion[10][13] = 100;
        $reduccion[10][16] = 60;

        $reduccion[11][1] = 0;
        $reduccion[11][2] = 0;
        $reduccion[11][6] = 100;
        $reduccion[11][9] = 40;
        $reduccion[11][12] = 0;
        $reduccion[11][15] = 0;
        
        return $reduccion;
    }

    public function actions() {
        return array(
            'ws' => array(
                'class' => 'CWebServiceAction',
            ),
        );
    }

    /**
     * Devuelve una lista de materias
     * @return array[] Una lista de materias
     * @soap
     */
    public function listarMaterias() {
        return $this->cargarMaterias();
    }

    /**
     * Devuelve una materia con sus atributos
     * @param integer $id El id de la materia
     * @return array Una materia con sus atributos
     * @soap
     */
    public function getMateria($id) {
        $m = $this->cargarMaterias();

        if (isset($m[$id])) {
            return $m[$id];
        }
    }

    /**
     * Devuelve una lista de facultades
     * @return array[] Una lista de facultades
     * @soap
     */
    public function listarFacultades() {
        return $this->cargarFacultades();
    }

    /**
     * Devuelve una facultad con sus atributos
     * @param integer $id El id de la facultad
     * @return array Una facultad con sus atributos
     * @soap
     */
    public function getFacultad($id) {
        $f = $this->cargarFacultades();

        if (isset($f[$id])) {
            return $f[$id];
        }
    }

    /**
     * Devuelve una lista de sedes
     * @return array[] Una lista de sedes
     * @soap
     */
    public function listarSedes() {
        return $this->cargarSedes();
    }

    /**
     * Devuelve una sede con sus atributos
     * @param integer $id El id de la sede
     * @return array Una sede con sus atributos
     * @soap
     */
    public function getSede($id) {
        $s = $this->cargarSedes();

        if (isset($s[$id])) {
            return $s[$id];
        }
    }

    /**
     * Devuelve una lista de carreras
     * @return array[] Una lista de carreras
     * @soap
     */
    public function listarCarreras() {
        return $this->cargarCarreras();
    }

    /**
     * Devuelve una carrera con sus atributos
     * @param integer $id El id de la carrera
     * @return array Una carrera con sus atributos
     * @soap
     */
    public function getCarrera($id) {
        $c = $this->cargarCarreras();

        if (isset($c[$id])) {
            return $c[$id];
        }
    }
	
	/**
     * Devuelve una lista de periodos de clase
     * @return array[] Una lista de periodos de clase
     * @soap
     */
    public function listarPeriodos() {
        return $this->cargarPeriodos();
    }

    /**
     * Devuelve un periodo con sus atributos
     * @param integer $id El id del periodo
     * @return array Un periodo con sus atributos
     * @soap
     */
    public function getPeriodo($id) {
        $p = $this->cargarPeriodos();

        if (isset($p[$id])) {
            return $p[$id];
        }
    }

    /**
     * Devuelve una lista de cursos
     * @return array[] Una lista de cursos
     * @soap
     */
    public function listarCursos() {
        return $this->cargarCursos();
    }

    /**
     * Devuelve un curso con sus atributos
     * @param integer $id El id del curso
     * @return array Un curso con sus atributos
     * @soap
     */
    public function getCurso($id) {
        $c = $this->cargarCursos();

        if (isset($c[$id])) {
            return $c[$id];
        }
    }

    /**
     * Devuelve una lista de alumnos
     * @return array[] Una lista de alumnos
     * @soap
     */
    public function listarAlumnos() {
        return $this->cargarAlumnos();
    }

    /**
     * Devuelve un alumno con sus atributos
     * @param integer $id El id del alumno
     * @return array Un alumno con sus atributos
     * @soap
     */
    public function getAlumno($id) {
        $a = $this->cargarAlumnos();

        if (isset($a[$id])) {
            return $a[$id];
        }
    }

    /**
     * Devuelve una lista de profesores
     * @return array[] Una lista de profesores
     * @soap
     */
    public function listarProfesores() {
        return $this->cargarProfesores();
    }

    /**
     * Devuelve un profesor con sus atributos
     * @param integer $id El id del profesor
     * @return array Un profesor con sus atributos
     * @soap
     */
    public function getProfesor($id) {
        $p = $this->cargarProfesores();

        if (isset($p[$id])) {
            return $p[$id];
        }
    }

    /**
     * Devuelve un nombre de materia
     * @param integer $id El id del curso
     * @return string el nombre de la materia
     * @soap
     */
    public function getNombreMateria($id) {
        $soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);
        $curso = $soapClient->getCurso($id);
        $materia = $soapClient->getMateria($curso['pe_asignatura_id']);

        return $materia['nombre'];
    }

    /**
     * Devuelve un nombre de la carrera
     * @param integer $id El id del curso
     * @return string el nombre de la carrera
     * @soap
     */
    public function getNombreCarrera($id) {
        $soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);
        $materia = $soapClient->getCurso($id);
        $materia = $soapClient->getMateria($materia['pe_asignatura_id']);
        $carrera = $soapClient->getCarrera($materia['org_carrera_id']);

        return $carrera['nombre'];
    }

    /**
     * Devuelve la cantidad de horas catedra
     * @param integer $id El id del curso
     * @param string $fecha Fecha de la clase
     * @return integer la cantidad de horas catedra
     * @soap
     */
    public function getCantHoraMateria($id, $fecha) {
        $h = $this->cargarHorarios();

        $day = (int) date('N', strtotime($fecha));

        if (isset($h[$id][$day])) {
            return $h[$id][$day]['hc'];
        } else {
            return 0;
        }
    }
    
    
    /**
     * Devuelve el horario de inicio de la materia
     * @param integer $id El id del curso
     * @param string $fecha Fecha de la clase
     * @return string horario de inicio de la materia

     * @soap
     */
    
       public function getMateriaHorarioInicio($id, $fecha) {
        $h = $this->cargarHorarios();

        $day = (int) date('N', strtotime($fecha));

        if (isset($h[$id][$day])) {
            return $h[$id][$day]['inicio'];
        } else {
            return '0';
        }
    }



	/**
     * Devuelve la cantidad de horas catedra de una materia
     * @param integer $id El id del curso
     * @return array El dia y la cantidad de horas correspondiente
     * @soap
     */
    public function getCantHoraMateriaGeneral($id) {
        $h = $this->cargarHorarios();

        if (isset($h[$id])) {
            return $h[$id];
        } else {
            return 0;
        }
    }
    /**
     * Devuelve la los alumnos inscriptos a un curso
     * @param integer $id El id del curso
     * @return array los alumnos inscriptos al curso
     * @soap
     */
    public function getAlumnoXCurso($id) {
        $a = $this->cargarAlumnosXCurso();
        $b = $a[$id];
        if (isset($b)) {
            sort($b);
            return $b;
        }
    }

    /**
     * Devuelve la los cursos en los que esta inscripto el alumno
     * @param integer $id El id del alumno
     * @return array los cursos en los que esta inscripto el alumno
     * @soap
     */
    public function getCursoXAlumno($id) {
        $a = $this->cargarCursosXAlumno();
        $b = $a[$id];
        if (isset($b)) {
            return $b;
        }
    }
 /**
     * Devuelve la lista de alumnos inscriptos en el cursp
     * @return array lista de alumnos inscriptos en los cursos
     * @soap
     */
    public function listarCursosXAlumno() {
        $a = $this->cargarCursosXAlumno();

        ksort($a);
        foreach ($a as &$array) {
            asort($array);
        }

        return $a;
    }
    /**
     * Devuelve la lista de cursos en los cuales el alumno esta inscripto
     * @return array los cursos inscriptos del alumno
     * @soap
     */
    public function listarAlumnoXCurso() {
        $a = $this->cargarAlumnosXCurso();

        ksort($a);
        foreach ($a as &$array) {
            asort($array);
        }

        return $a;
    }

    /**
     * Devuelve una lista de cursos con los profesores
     * @return array[] los profesores agrupados por curso
     * @soap
     */
    public function listarProfesorXCurso() {
        $p = $this->cargarProfesoresXCurso();
        return $p;
    }

    /**
     * Devuelve una lista de profesores asignados al curso
     * @param integer $id ID del curso
     * @return array los profesores asignados al curso
     * @soap
     */
    public function getProfesorXCurso($id) {
        $p = $this->cargarProfesoresXCurso();
        if (isset($p[$id])) {
            return $p[$id];
        }
    }
    
       /**
     * Devuelve una lista de las facultades al que pertenece el profesor
     * @param integer $id ID del profesor
     * @return array facultades al que pertenece el profesor
     * @soap
     */
    public function getFacultadXProfesor($id) {
        $p = $this->cargarFacultadXProfesor();
        if (isset($p[$id])) {
            return $p[$id];
        }
    }
    
           /**
     * Devuelve una lista de las facultades al que pertenece el alumno
     * @param integer $id ID del alumno
     * @return array facultades al que pertenece el alumno
     * @soap
     */
    public function getFacultadXAlumno($id) {
        $p = $this->cargarFacultadXAlumno();
        if (isset($p[$id])) {
            return $p[$id];
        }
    }
    
     /**
     * Devuelve una lista de cursos asignados al profesor
     * @param integer $id ID del profesor
     * @return array los cursos asignados al profesor
     * @soap
     */
    public function getCursoXProfesor($id) {
        $p = $this->cargarCursosXProfesor();
        if (isset($p[$id])) {
            return $p[$id];
        }
    }

    /**
     * Devuelve una lista de profesores con los cursos
     * @return array[] los cursos agrupados por profesor
     * @soap
     */
    public function listarCursosXProfesor() {
        $c = $this->cargarCursosXProfesor();
        return $c;
    }

     /**
     * Devuelve el porcentaje de asistencia del alumno en ese curso
     * @param integer $idAlumno ID del alumno
	 * @param integer $idCurso ID del curso
     * @return integer el porcentaje de asistencia del alumno en ese curso
     * @soap
     */
    public function getAlumnoXReduccion($idAlumno, $idCurso) {
            $b = $this->cargarAlumnoXReduccion();
            $p = $b[$idAlumno][$idCurso];
        if (isset($p)) {
            return $p;
        }/*else{
			return 0;
		}*/
    }
    /**
     * @return array action filters
     */
    public function filters() {
        return array(
            'accessControl', // perform access control for CRUD operations
        );
    }

    /**
     * Specifies the access control rules.
     * This method is used by the 'accessControl' filter.
     * @return array access control rules
     */
    public function accessRules() {
        return array(
            array('allow', // allow all users to perform web services actions
                'actions' => array('ws'),
                'users' => array('*'),
            ),
            array('deny', // deny all users
                'users' => array('*'),
            ),
        );
    }

}
